//
//  YHSceneFactory.h
//  ThunderWarriors
//
//  Created by mac on 12-12-23.
//
//

#ifndef ThunderWarriors_YHSceneFactory_h
#define ThunderWarriors_YHSceneFactory_h
#include "YHSceneDefine.h"
#include "YHScene.h"

class YHSceneFactory {
public:
    YHSceneFactory();
    virtual ~ YHSceneFactory();
    virtual YHScene* createScene()=0;
    virtual YHScene* createSceneWithSceneId(GameSceneIdType sceneId)=0;
};

class YHMainSceneFactory: public YHSceneFactory {
public:
    YHMainSceneFactory();
    virtual ~ YHMainSceneFactory();
    virtual YHScene* createScene();
    virtual YHScene* createSceneWithSceneId(GameSceneIdType sceneId);
};

class YHSettingSceneFactory: public YHSceneFactory{
public:
    YHSettingSceneFactory();
    virtual ~ YHSettingSceneFactory();
    virtual YHScene* createScene();
    virtual YHScene* createSceneWithSceneId(GameSceneIdType sceneId);
};

class YHGameOverSceneFactory: public YHSceneFactory{
public:
    YHGameOverSceneFactory();
    virtual ~ YHGameOverSceneFactory();
    virtual YHScene* createScene();
    virtual YHScene* createSceneWithSceneId(GameSceneIdType sceneId);
};

#endif
